package com.sunkyc.framework.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sunkyc.commons.entity.TablePageData;
import com.sunkyc.framework.system.entity.SysRole;
import com.sunkyc.commons.entity.PageQueryVo;

import java.util.List;

/**
 * <p>
 * 角色信息表 服务类
 * </p>
 *
 * @author sunkyc
 * @since 2022-05-31
 */
public interface SysRoleService extends IService<SysRole> {


    /**
     * 添加角色信息
     * @param sysRole
     * @return
     */
    int addRole(SysRole sysRole);


    /**
     * 分页查询角色列表
     * @param pageQueryVo
     * @param sysRole
     * @return
     */
    TablePageData<SysRole> queryList(PageQueryVo pageQueryVo, SysRole sysRole);


    /**
     * 校验角色名称是否唯一
     * @param sysRole
     * @return
     */
    Boolean checkNameUnique(SysRole sysRole);


    /**
     * 校验角色标识是否唯一
     * @param sysRole
     * @return
     */
    Boolean checkKeyUnique(SysRole sysRole);


    /**
     * 修改角色信息
     * @param sysRole
     * @return
     */
    int updateRole(SysRole sysRole);


    /**
     * 根据角色id校验是否被分配
     * @param roleId
     * @return
     */
    Boolean checkedRoleUsedByRoleId(Long roleId);


    /**
     * 删除角色
     * @param ids
     * @return
     */
    int delByRoleids(Long[] ids);

    /**
     * 根据ID查询角色信息
     * @param roleId
     * @return
     */
    SysRole queryById(Long roleId);

    int updateRoleDataScope(SysRole sysRole);


    /**
     * 查询所有角色信息(不分页)
     * @return
     */
    List<SysRole> queryAll();
}
